﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Logistics_Management_System.Objects;

namespace Logistics_Management_System.Customer_Employee_Permission
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IPermission_Service" in both code and config file together.
    [ServiceContract]
    public interface IPermission_Service
    {
        [OperationContract]
        List<LG_Role> GetAllRole();

        [OperationContract]
        List<LG_Permission> GetAllPermission();

        [OperationContract]
        List<LG_Permission> GetPermissionsByRole(int role_id);

        [OperationContract]
        ReturnBool SetRoleForEmployee(List<LG_Role> list_role, int emp_id);

        [OperationContract]
        ReturnBool SetPermissionsForRole(int role_id, List<LG_Permission> list_per);

        //-------------END SET/GET
        [OperationContract]
        ReturnBool AddNewRole(LG_Role role);

        [OperationContract]
        ReturnBool EditInfoRole(int role_id, LG_Role updated);

        [OperationContract]
        ReturnBool RemoveRole(int role_id);

        [OperationContract]
        ReturnBool AddNewPermission(LG_Permission permission);

        [OperationContract]
        ReturnBool EditInfoPermission(int per_id, LG_Permission updated);

        [OperationContract]
        ReturnBool RemovePermission(int per_id);
        //-------------END INSERT/UPDATE
        
    }
}
